package com.aizuda.boot.modules.business.permission.domain.response;

import com.aizuda.boot.modules.business.department.domain.response.DepartmentShowVO;
import com.aizuda.boot.modules.common.constant.enums.PermissionStatusType;
import com.aizuda.boot.modules.common.constant.enums.ValidityType;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author sangyirong
 * @version 1.0
 * @date 2025/5/17
 */
@Data
@Schema
public class PagePermissionVO {

    /**
     * 权限ID
     */
    @Schema(description = "权限ID")
    private Long permissionId;

    /**
     * 权限名称
     */
    @Schema(description = "权限名称")
    private String permissionName;

    /**
     * 角色ID
     */
    @Schema(description = "角色ID")
    private String userId;

    /**
     * 用户列表
     */
    @Schema(description = "用户列表")
    private List<EmployeeShowVO> UserVOS;

    /**
     * 部门ID
     */
    @Schema(description = "部门ID")
    private String departmentId;

    /**
     * 部门列表
     */
    @Schema(description = "部门列表")
    private List<DepartmentShowVO> DepartmentVOS;


    @Schema(description = "角色ID")
    private Long  roleId;

    /**
     * 角色名称
     */
    @Schema(description = "角色名称")
    private String roleName;

    /**
     * 权限状态
     */
    @Schema(description = "权限状态")
    private PermissionStatusType permissionStatus;

    /**
     * 有效期
     */
    @Schema(description = "有效期")
    private ValidityType validityType;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间")
    private Date startDate;

    /**
     * 结束时间
     */
    @Schema(description = "结束时间")
    private Date endDate;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createdAt;

}
